package com.qys.training.biz.file.service;

import com.qys.training.biz.file.dto.FileFindRequestDTO;
import com.qys.training.biz.file.entity.FileEntity;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * @author Winstone
 * @date 2020/8/4 - 2:33 下午
 */
public interface FileService {

    /**
     * 上传文件
     *
     * @param file
     * @return
     */
    Long uploadFile(MultipartFile file);

    /**
     * 更新文件
     *
     * @param id
     * @param file
     * @return
     */
    Long updateFile(Long id, MultipartFile file);

    /**
     * 下载文件
     *
     * @param id
     * @param response
     */
    void downloadFile(Long id, HttpServletResponse response);

    /**
     * 删除文件
     *
     * @param id
     * @return
     */
    Long deleteFile(Long id);

    /**
     * 根据文件名模糊查找，或者根据大小范围查找文件
     *
     * @param dto
     * @return
     */
    List<FileEntity> findFile(FileFindRequestDTO dto);

    /**
     * 将下载文件打包成ZIP下载
     *
     * @param ids
     * @param response
     */
    void downloadZipFile(Long[] ids, HttpServletResponse response);

    /**
     * 在文件中增加文字
     *
     * @param id
     * @param text
     * @param x
     * @param y
     * @param pageNum
     * @param font
     * @param fontSize
     * @return
     */
    Long addText(Long id, String text, float x, float y, int pageNum, String font, float fontSize);
}
